﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace DirectUI.Mobile.UI.Controls
{
    public interface IHost
    {
        void AddControl(Control c);
        void RemoveControl(Control c);
        /// <summary>
        /// Gets or sets the selected control.
        /// </summary>
        DirectUIControl FocusedControl { get; set; }
        Cursor Cursor { get; set; }
        Rectangle Bounds { get; }

        Font Font { get; }
        bool Visible { get; set; }
        Color BackColor { get; }

        Color ForeColor { get; }
        ///// <summary>
        ///// Invalidates the canvas of the  specified bounds.
        ///// </summary>
        ///// <param name="bounds">The bound to invalidate.</param>
        void Invalidate(Rectangle bounds);
        void Update();
        /// <summary>
        /// Gets the bounds as they appear in the screen.
        /// </summary>
        /// <param name="bounds"></param>
        /// <returns></returns>
        Rectangle GetScreenBounds(Rectangle bounds);
        Point PointToHost(int x, int y);
    }
}
